import type {SizeType} from "antd/lib/config-provider/SizeContext"

/* AuthState */
export interface AuthState {
    authButtons:{
        [propName: string]:any
    };
    authRouter:string[];
}

/* BreadcrumbState */
export interface BreadcrumbState {
    breadcrumbList:{
        [propName:string]:string[]
    }
}

/** GlobalState */
export interface GlobalState {
    token: string;
    userInfo: any;
    assemblySize: SizeType;
    language: string;
    theme: "dark"|"default";
}

/** MenuState */
export interface MenuState {
    isCollapse: boolean;
    menuList: Menu.MenuOptions[];
}

/** TabState */
export interface TabsState {
    tabsActive: string;
    tabsList: Menu.MenuOptions[]
}

export interface State {
    global: GlobalState;
    menu: MenuState;
    tabs: TabsState;
    auth: AuthState;
    breadcrumb: BreadcrumbState;
}